From 3e43b54eb94721befc816554a62fae76e11ce220 Mon Sep 17 00:00:00 2001 From: "cl349@freefall.cl.cam.ac.uk" Date: Wed, 20 Oct 2004 17:36:22 +0000 Subject: [PATCH] bitkeeper revision 1.1159.117.2 (4176a216CU3JD-3Q5NlBFwP8DCqzVg) Additional fixes to the writable pagetable error paths. --- xen/arch/x86/memory.c | 2 ++ xen/common/schedule.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/memory.c b/xen/arch/x86/memory.c index dd155a5ba5..ffd1d6eacc 100644 --- a/xen/arch/x86/memory.c +++ b/xen/arch/x86/memory.c @@ -1682,6 +1682,8 @@ void ptwr_flush(const int which) */ memcpy(&pl1e[i], &ptwr_info[cpu].ptinfo[which].page[i], (ENTRIES_PER_L1_PAGETABLE - i) * sizeof(l1_pgentry_t)); + unmap_domain_mem(pl1e); + ptwr_info[cpu].ptinfo[which].l1va = 0; domain_crash(); } diff --git a/xen/common/schedule.c b/xen/common/schedule.c index db69f24362..251fc8b4f4 100644 --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -326,6 +326,9 @@ void __enter_scheduler(void) task_slice_t next_slice; s32 r_time; /* time for new dom to run */ + cleanup_writable_pagetable( + prev, PTWR_CLEANUP_ACTIVE | PTWR_CLEANUP_INACTIVE); + perfc_incrc(sched_run); spin_lock_irq(&schedule_data[cpu].schedule_lock); @@ -373,9 +376,6 @@ void __enter_scheduler(void) if ( unlikely(prev == next) ) return; - cleanup_writable_pagetable( - prev, PTWR_CLEANUP_ACTIVE | PTWR_CLEANUP_INACTIVE); - perfc_incrc(sched_ctx); #if defined(WAKE_HISTO) -- 2.30.2